This invention relates to the field of data processing systems. More particularly, this invention relates to data processing systems having coherency control mechanisms for managing coherence between data stored at different locations within the data processing system.
It is known to provide data processing systems capable of storing multiple copies of the same data values at different locations within the data processing system. Thus, for example, one or more individual processors may store a local copy of a line of data within their local cache to provide more rapid access to that line of data. A problem with such an approach is that coherency must be managed across the different copies of the line of data. Thus, if one of the processors changes that line of data, then such a change may need to be communicated to the processors storing a now out-of-date copy of that line of data. Such coherency control mechanisms may include the use of snoop buffers/directories which centrally store data identifying which lines of data are stored within which locations within the system as a whole. When an event takes place which may need to be notified to different points within the system, then the snoop buffer/directory can be used to identify what, if any, copies of a given line of data are stored within different locations of the system as a whole.
One way of managing coherency control within such systems is to utilise a protocol for handling memory access requests that supports the passing of appropriate coherence management messages. An example of such a protocol is the ACE protocol developed by ARM Limited of Cambridge, England. While such an approach may ensure proper coherence, it can suffer from the disadvantage of requiring additional complexity/overhead within the devices communicating using that protocol in order to ensure compliance with the protocol. Such additional complexity may be expensive in terms of both circuit area and power consumed. Furthermore, constraints of the protocol may slow down performance and may result in requirements that do not easily scale as a system grows in size.